Cryptography is one critical security component for individual computing devices and network systems. The successful implementation of secure and efficient cryptographic protocols has engendered confidence in the general public that commercial computing networks and applications, such as shared computing resources and personal information applications, are safe. This confidence has driven the dramatic growth in both of these industries. Illustrative shared computing resources include distributed computing systems (i.e., cloud computing environments), while illustrative personal information applications include online banking and electronic commerce (“e-commerce”) applications.
Nonetheless, no security system is infallible. Although conventional cryptographic systems are effective at thwarting direct attacks designed, for example, to obtain cryptographic keys or unencrypted data, they remain vulnerable to certain indirect attacks, such as side-channel attacks. In general, a side-channel attack involves deriving an encryption key based on the observable effects of computation. Side-channel attacks go beyond the plaintext and encrypted text used during the encryption process and instead focus on information involving timing (e.g., the time required to perform an operation), power consumption, sound, and electromagnetic characteristics. From this information, a side-channel attack may determine an entire encryption key one element at a time. Existing computer and network security architectures are not adequately designed to effectively detect and respond to side-channel attacks, especially without introducing prohibitive costs and inefficiencies into the very systems they are designed to protect.